#pragma once
#include "StdAfx.h"

class CCamera
{
public:
	D3DXMATRIX				m_matWorld;
	D3DXMATRIX				m_matView;
	D3DXMATRIX				m_matProj;
	
	D3DXVECTOR3				m_vEye;
    D3DXVECTOR3				m_vLook;
	D3DXVECTOR3				m_vUp;

	D3DXVECTOR3				m_vView;
	D3DXVECTOR3				m_vFront;
	D3DXVECTOR3				m_vSide;

	//D3DXVECTOR3				m_vDefaultUp;
	//D3DXVECTOR3				m_vFrustum[8];
	//PLANE2					FrustumPlane[6];
	//D3DXVECTOR3				m_vBackView;
	//D3DXVECTOR3				m_vBackLook;
	//D3DXVECTOR3				m_vCameraCalculation;
	
	float					m_fDistance;
	float					m_fDistPlus;
	float					m_fThetaH;
	float					m_fThetaV;
	float					m_fDegreeH;
	float					m_fDegreeV;
	float					m_fAngleX;
	float					m_fAngleY;
	float					m_fAngleZ;
	//int					m_iViewMode;
	//bool					m_bDebugView;

	float					m_fMoveSpeed;

public:
	bool					Init();
	bool					Frame();
	bool					Render( int Pos );
	bool					Release();
	void					SetView();
	
	//Debug Move Camera
	void					Move_View( float dis );
	//Player Camera
	void					Move_Front( float dis);
	void					Move_Side( float dis );

	void					RotationX( float angle );
	void					RotationY( float angle );
	void					RotationZ( float angle );

public:
	CCamera(void);
	~CCamera(void);
};
